Open Bug 1732118 Opened 4 years ago

Users of FOG Custom Pings have no way to know if child-process data will be present

Categories

(Toolkit :: Telemetry, task, P3)

task

Tracking

()

People

(Reporter: chutten, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [telemetry:fog:m?])

If my custom ping wants to contain data collected in a non-main process, how can I know when's the right time to submit my ping so that it contains this data?

We have test-only APIs for checking if data is present.
We have test-only APIs for synchronously flushing all child data to the parent.

But outside of tests... how can I make sure the data's there before calling Submit(aReason)?

I can think of some options, but I'm not sold on any of them:
a) Allow Custom Pings to be submitted in non-main processes, flushing IPC at that time?
* Will complicate IPC somewhat
* What coordinates the flushing across all processes of that type?
b) Flush IPC each time a custom ping is submitted
* Could be a perf problem
* Even custom pings with only-main-process data will bear this perf cost
b-i) Expand FOG's understanding of which pings have non-main-process data in them to only opt relevant pings into b
* Could be a FOG-specific pings.yaml param should_flush_ipc_before_submit: true
* (which might be easy to miss)
c) Provide a non-test FOG IPC synchronization mechanism
* It'll be easy to forget to call this before calling Submit(aReason)
* Even if it takes the shape of a FlushIPCAndSubmit() or optional param FOG-specific addition to the ping metric type's API, it might be missed.

You need to log in before you can comment on or make changes to this bug.